February 20, 2011

ランダム再生で音楽を聴く。

今日は算数の話。

twitterでフォローしている人が、「1曲の長さが5分の曲がライブラリに1000曲あるとして、ランダム再生で一度も再生されてない曲数が10曲以下になるまで何時間かかる?」というつぶやきを流したんですよね。

私もiPodでランダム再生で毎日音楽聴いてて、なんか同じ曲が何度も出てくるような気がするし、ぜんぜん出てこない曲もあるような気がするし、いったいホントにランダムなんだろうか、どれくらい聞いてればiPodに入ってる全曲を聴けるんだろうか、と思っていたところなので、この際マジメにこの問いを解いてみることにしたんですよ。幸い、私のiPodの中に入ってる曲も約1000曲だし。

で、せっかく解いたので、私の解法をメモっておきます。間違ってたらごめんなさい。

*   *   *

簡略化のため、まず、10曲ライブラリをランダム再生して、9曲演奏されてしまうまでに何回再生すべきか、で考えてみる。

10曲を普通にn回ランダム再生した場合のパターンの数:10^n
10曲から9曲を選んでn回ランダム再生するパターンの数:C(10,9)*9^n

で、10^n > C(10,9)*9^n になるnを求めればいい。メンドクサイので等式にして10^n = C(10,9)*9^nをnについて解く。

C(10, 9)=10なので、

(中略)

n=1/(1-log9)=21.85...

まあ、確率的には22回再生すれば9曲は出現する可能性が高い、ということになるのか。

で、これを「X曲のライブラリをランダム再生して、Y曲聴き終わるためにはn回再生する必要がある。」と一般化すると、

n=log(C(X,Y))/(logX-logY)

1000曲のライブラリで990曲聴き終わるためには、

n=log(C(1000,990))/(log1000-log990)=5365.79...

(ちなみに、C(X,Y)=X!/(Y!*(X-Y)!) )

ということで、5366回くらい再生すれば、990曲は聴けると。
1曲5分とすれば、5分×5366=約18.63日。

ちなみに、1000曲全部聴こうと思ったら、要は999曲以上聴く、と考えればよいので、

n=log(C(1000,999))/(log1000-log999)=6904.3...

5分×6904.3...=23.97...日

連続24日間くらい聴いてれば、全曲聴ける可能性が高くなるんだね。そんなもんか。

・・・って、1000曲聴きたいのならば、ランダム再生せず素直に頭から順番にシークエンス再生すれば、1曲5分ならば1000曲は5000分、約3.472日あれば全部聴けるんですけどね。

No comments: